---
title: "02-实操 本地docker配置环境"
created: 2025-12-09
aliases:
- 实操 本地docker配置环境
tags:
- 项目
---
# 实操 本地docker配置环境
## 下载docker
汉化:
## 准备工作:创建目录结构
在你的电脑上(例如 `D:\` 盘)创建一个文件夹 `D:\Desktop\damai_pro\DamaiEnv`,并在其中创建以下子目录和文件,用于存放配置文件。
```dos
D:\DamaiEnv\
├── mysql\
│ ├── conf\
│ │ └── my.cnf <-- 需要新建此文件
│ ├── data\
│ └── log\
└── zookeeper\
├── conf\
│ └── zoo.cfg <-- 需要新建此文件
├── data\
└── logs\
```
## 第一步:创建 Docker 网络
为了让 Elasticsearch 和 Kibana 顺利通信,我们需要先创建一个专用网络 。
```bash
docker network create elk
```
![[image-52786c33.png]]
## 第二步:安装 MySQL 5.7
**1. 创建配置文件** 在 `D:\DamaiEnv\mysql\conf\` 下新建 `my.cnf`,内容如下 :
```properties
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
```
**2.关闭本地运行的mysql服务**,否则会因为3306被占用而无法启动容器中的mysql
![[image-4b4594f0.png]]
![[image-117d7ba0.png]]
**3. 启动容器** 注意:将 `-v` 后的路径改为你的实际路径。
```bash
docker run -d -p 3306:3306 --privileged=true -v D:\Desktop\damai_pro\DamaiEnv\mysql\log:/var/log/mysql -v D:\Desktop\damai_pro\DamaiEnv\mysql\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci
```
![[image-154b8533.png]]
4.开放MySQL权限
Docker 容器内的 MySQL 默认只允许 `root` 用户从 `localhost` 登录,而通过客户端(如 Navicat/DataGrip)连接时,来源 IP 是 Docker 网关 IP(例如 `172.17.0.1`),所以会被拒绝。
需要进入 MySQL 容器,修改 `root` 用户的权限,允许任意 IP 连接。
```bash
docker exec -it mysql bash
```
**登录 MySQL**(在容器内部):
```yaml
mysql -u root -p
输入密码: root
```
**执行授权 SQL**:
```sql
use mysql;
update user set host = '%' where user = 'root';
flush privileges;
exit;
```
**退出容器**:
```text
exit
```
![[image-5102598e.png]]
## 第三步:安装 Nacos (修复端口版)
文档中指出原命令缺少 `9849` 端口映射会导致无法启动,这里已补全 。
```bash
docker run -d -p 8848:8848 -p 9848:9848 -p 9849:9849 -e MODE=standalone -e nacos.core.auth.enabled=true -e nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 -e nacos.core.auth.server.identity.key=XN3zr6HfJV%LjUPjRBQzBB -e nacos.core.auth.server.identity.value=B3CU%K3AxEAMrgPBdKLRQRL --name nacos-server nacos/nacos-server:v2.2.3
```
![[image-5fac3847.png]]
## 第四步:安装 Redis (修复密码版)
同理 关闭本机redis服务
![[image-4d994e67.png]]
文档指出原命令 `-e requirepass` 无效,需将密码命令放在镜像名之后 。
```bash
docker run -d --name redis -p 6379:6379 redis:6.0.8 --requirepass 123
```
![[image-4055b436.png]]
## 第五步:安装 Zookeeper
**1. 创建配置文件** 在 `D:\DamaiEnv\zookeeper\conf\` 下新建 `zoo.cfg`,内容如下 :
```properties
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data
clientPort=2181
```
2. 启动容器
```bash
docker run -d --name zookeeper --privileged=true -p 2181:2181 --restart=always -v D:\Desktop\damai_pro\DamaiEnv\zookeeper\data:/data -v D:\Desktop\damai_pro\DamaiEnv\zookeeper\conf:/conf -v D:\Desktop\damai_pro\DamaiEnv\zookeeper\logs:/datalog zookeeper
```
![[image-89238db4.png]]
## 第六步:安装 Kafka
**关键点**:你需要获取你本机的 IP 地址(打开 CMD 输入 `ipconfig`,找到 IPv4 地址,例如 `192.168.x.x`)。不要使用 `localhost` 或 `127.0.0.1`,否则微服务可能连不上。
![[image-38d63212.png]]
请将下方命令中的 `YOUR_LOCAL_IP` 替换为你的真实 IP :
比如我的本机 IP 是:`172.20.10.5`
```bash
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.20.10.5:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.20.10.5:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka
```
![[image-f81ccd7d.png]]
注意:这里假设 Zookeeper 也是通过宿主机 IP 访问(即上面 Zookeeper 映射的 2181 端口)。
**⚠️ 注意事项**: 这个 IP (`172.20.10.5`) 看起来像是连接手机热点或特定局域网分配的。如果你断开网络或切换 Wi-Fi,这个 IP 可能会改变。如果 IP 变了,Kafka 可能会连不上,到时候需要删除旧容器(`docker rm -f kafka`)并用新 IP 重新运行这条命令。
## 第七步:安装 Elasticsearch (ES)
此步骤需要手动设置密码。
**1. 启动容器**
```bash
docker run -d --name es --net elk -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms768m -Xmx768m" -e "xpack.security.http.ssl.enabled=false" -e "xpack.security.enrollment.enabled=true" elasticsearch:8.5.2
```
![[image-13ede01c.png]]
**初始化密码 (重要)** 容器启动后(需等待几十秒),在 PowerShell 执行以下命令进入交互模式 :
```bash
docker exec -it es /bin/bash
```
进入容器内部后,执行:
```text
./bin/elasticsearch-setup-passwords interactive
```
![[image-f4283842.png]]
**⚠️ 警告**:设置密码时,**不要使用纯数字**,否则 Kibana 可能无法启动,建议使用 `zxc321` 或类似字母+数字组合 。请记住 `elastic` 和 `kibana_system` 用户的密码。(全设置为`zw200495`)
## 第八步:安装 Kibana
将下方命令中的 `你的密码` 替换为上一步设置的 `kibana_system` 用户的密码(或者 elastic 用户密码)。
demo:
```bash
docker run -d --name kibana --net elk -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://es:9200 -e ELASTICSEARCH_USERNAME="kibana_system" -e ELASTICSEARCH_PASSWORD="你的密码" -e "I18N_LOCALE=zh-CN" kibana:8.5.2
```
my:
```bash
docker run -d --name kibana --net elk -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://es:9200 -e ELASTICSEARCH_USERNAME="kibana_system" -e ELASTICSEARCH_PASSWORD="zw200495" -e "I18N_LOCALE=zh-CN" kibana:8.5.2
```
注:因为使用了 `--net elk`,这里 `ELASTICSEARCH_HOSTS` 可以直接用容器名 `http://es:9200`,无需宿主机 IP。
![[image-e8d6eeb3.png]]
## 验证安装
![[image-ceebffe7.png]]
1. **Nacos**: 访问 `http://localhost:8848/nacos` (账号密码均为 nacos)。
![[image-07b0ac24.png]]
2. **ES**: 访问 `http://localhost:9200` (输入账号 elastic 和你设置的密码)。
![[image-a35eb5ba.png]]
3. **Kibana**: 访问 `http://localhost:5601`。(输入账号 elastic 和你设置的密码)。
![[image-05a2d0c6.png]]
4. **MySQL/Redis**: 使用客户端工具(如 Navicat, Redis Desktop Manager)连接 `localhost` 测试。
- redis
![[image-bd2183c8.png]]
![[image-80b5a1a3.png]]
- mysql
账号密码都是root
![[image-7324610c.png]]
---
**企业级项目导航**:⬅️ [[01-实操|01-实操]] | 02-实操 本地docker配置环境 | ➡️ [[03-实操 项目启动|03-实操 项目启动]]